
#version4
EXE=code.exe
#SRC=$(shell ls *.c) # 显示当面目录下的所有.c文件
SRC=$(wildcard *.c) # 与上面shell脚本同作用，这个是vim内置的
OBJ=$(SRC:.c=.o) # 将SRC内部的所有.c文件，都替换为同名.o
CC=gcc
LOPT=-o
COPT=-c
RM= rm -rf 
 
$(EXE):$(OBJ)
	$(CC) $(LOPT) $@ $^
%.o:%.c
	$(CC) $(COPT) $< # 将.c文件一个个拿出来进行编译
.PHONY:clean test
clean:
	$(RM) $(EXE) $(OBJ)
test:
	echo $(SRC)
	echo $(OBJ)
	
# #version3
# EXE=code.exe
# SRC=code.c
# OBJ=code.o
# CC=gcc
# LOPT=-o
# COPT=-c
# RM= rm -rf 
# 
# $(EXE):$(OBJ)
# 	$(CC) $(LOPT) $@ $^
# $(OBJ):$(SRC)
# 	$(CC) $(COPT) $^
# .PHONY:clean
# clean:
# 	$(RM) $(EXE) $(OBJ)

# #version3
# EXE=code.exe
# SRC=code.c
# OBJ=code.o
# CC=gcc
# LOPT=-o
# COPT=-c
# RM= rm -rf 
# 
# $(EXE):$(OBJ)
# 	$(CC) $(LOPT) $(EXE) $(OBJ)
# $(OBJ):$(SRC)
# 	$(CC) $(COPT) $(SRC)
# .PHONY:clean
# clean:
# 	$(RM) $(EXE) $(OBJ)


# #version2
# code.exe:code.o
# 	gcc code.o -o code.exe
# code.o:code.s
# 	gcc -c code.s
# code.s:code.i
# 	gcc -S code.i -o code.s
# code.i:code.c
# 	gcc -E code.c -o code.i
# .PHNOY:clean
# 	rm -rf code.exe *.i *.s *.o

# #version1
# code.exe:code.c # 目标文件 : 依赖关系
# 	gcc code.c -o code.exe # (必须以Tab键开头) 依赖方法
# 
# .PHONY:clean # 伪目标：该目标依赖方法，总是被执行，
# clean:
# 	rm -rf code.exe




